1. Technical Field
The present invention relates in general to computer software development. More specifically, the present invention relates to methods for dynamically mapping ASN.1 encoded data to an object model to generate an ASN.1 data structure.
2. Description of Related Art
Abstract Syntax Notation 1 (ASN.1) is an international standard that defines abstract data and message formats for inter-operability. Though initially used for describing email messages within the Open Systems Interconnection environment, ASN.1 has since then been adopted by a wide range of other applications, as in network management, security, mobile (cellular) telephony, air traffic control, and voice and video over the Internet. Examples include X.509 certificates, Public Key Cryptography Standard, Kerberos, Generic Security Service API, and Certificate Management Protocol.
An ASN.1 data type is built up from primitive data types (i.e. INTEGER, REAL, BOOLEAN, and NULL) using three main construction mechanisms: repetition (SEQUENCE OF and SET OF), alternatives (CHOICE), and lists of fields (SEQUENCE and SET). Once an ASN.1 data type has been defined, it can be used in the definition of other ASN.1 data types exactly as if it were a primitive data type. Such data types can be defined before use or after (forward references). Such a recursively-defined data structure could grow to be very complicated, especially with the requirement of the encoding ASN.1 descriptions into Distinguished Encoding Rules (DER) encoding byte arrays, and decoding them. DER is a standard encoding rule used to encode the structure of ASN.1 data to be transferred between the Application Layer and the Presentation Layer of the Open Systems Interconnection (OSI). It provides a means whereby the Presentation Layer can reliably exchange any arbitrary data structure with other computer systems, while the Application Layer can map the encoded data into any type of representation or language that is appropriate for the end user.
Today, object-oriented design and programming has been adopted by more and more enterprises because of its many advantages, such as reusability and ease of maintenance. Java, is one example of an object-oriented, platform-independent, and secure language that has transformed from emerging technology to become one of the dominant languages for successful and secure e-business applications.
Therefore, it would be desirable to have a tool that can map ASN.1 encoded data to an object model and translate ASN.1 encoded data to native Java source code, in order to help enterprises efficiently develop or migrate to object-oriented, cross-platform applications.